package Controle;

import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import negocio.Produto;
import utilitarios.Conectabanco;

/**
 *
 * @author Denize
 */
public class ControlProduto {

    Produto prod = new Produto();// instanciar o produto
    Produto modelo = new Produto();
    Conectabanco conexao = new Conectabanco(); // instaniar o banco

    public void inserirproduto(Produto prod) {
        conexao.conexao();

        try {
            PreparedStatement pst = conexao.conn.prepareStatement(" insert into produto(nome_produto,nome_fornecedor,quantidade, valor_compra,valor_venda,id_produto)"
                    + "values(?,?,?,?,?,?)");
            pst.setString(1, prod.getDescproduto());
            pst.setString(2, prod.getNomefornecedor());
            pst.setInt(3, prod.getQtdproduto());
            pst.setFloat(4, prod.getValvenda());
            pst.setFloat(5, prod.getValcompra());
            pst.setInt(6, prod.getIdproduto());
            pst.execute();
            JOptionPane.showMessageDialog(null, "Produto cadastrado com sucesso!");
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Erro ao inserir o produto!\nERRO:" + ex);
            conexao.desconecta();
        }

    }

    public void editaProduto(Produto prod) {
        conexao.conexao();
        try {
            PreparedStatement pst = conexao.conn.prepareStatement(" update produto set nome_produto=?,valor_venda=?,valor_compra=?,quantidade=?,nome_fornecedor=? where id_produto=?");
            pst.setString(1, prod.getDescproduto());
            pst.setString(2, prod.getNomefornecedor());
            pst.setInt(3, prod.getQtdproduto());
            pst.setFloat(4, prod.getValvenda());
            pst.setFloat(5, prod.getValcompra());
            pst.setInt(6, prod.getIdproduto());
            pst.execute();
            JOptionPane.showMessageDialog(null, "Produto Alterado com sucesso!");
            pst.execute();
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Erro ao Alterar o produto!\nERRO:" + ex);

        }

    }

    public void ExcluirProduto(Produto prod) {
        conexao.conexao();
        try {
            PreparedStatement pst = conexao.conn.prepareStatement("delete from produto where id_produto=?");
            pst.setInt(1, prod.getIdproduto());
            pst.execute();
            JOptionPane.showMessageDialog(null, "Produto excluido com sucesso!");

        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Erro ao Excluir o produto!\nERRO:" + ex);

        }

    }

    public Produto buscaProduto(Produto modelo) {
        conexao.conexao();
        conexao.executaSQL("Select * from Produto where nome_produto like '%" + modelo.getPesqproduto() + "%'");
        try {
            PreparedStatement pst = conexao.conn.prepareStatement("");
            pst.execute();

            conexao.rs.first();

            prod.setIdproduto(conexao.rs.getInt("id_produto"));
            prod.setDescproduto(conexao.rs.getString("nome_produto"));
            prod.setValcompra(conexao.rs.getFloat("valor_compra"));
            prod.setValvenda(conexao.rs.getFloat("valor_venda"));
            prod.setQtdproduto(conexao.rs.getInt("quantidade"));
            JOptionPane.showMessageDialog(null, "Produto encontrado com sucesso!");
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Erro ao buscar o produto!\nERRO:" + ex);
        }
        conexao.desconecta();
        return prod;

    }
}
